// 格式化单位
export function numberFormat(num: number): string {
  let res = num + '';
  if (num > 100000000) {
    res = Math.floor(num / 100000000) + '亿';
  } else if (num > 10000) {
    res = Math.floor(num / 10000) + '万';
  }
  return res;
}
export function getImgOnSize(url: string, num: number): string {
  return url + `?param=${num}y${num}`;
}

export function getPlayUrl(id: number) {
  return `https://music.163.com/song/media/outer/url?id=${id}.mp3`;
}

export function formatTime(s: number): string {
  // 先对秒数进行取整
  const totalSeconds = Math.floor(s);

  const minutes = Math.floor(totalSeconds / 60);
  const seconds = totalSeconds % 60;

  // 确保分钟和秒都是两位数
  const formattedMinutes = String(minutes).padStart(2, '0');
  const formattedSeconds = String(seconds).padStart(2, '0');

  return `${formattedMinutes}:${formattedSeconds}`;
}

/*
[00:00.000] 作曲 : 高橋優\n[00:01.000] 作词 : 米果\n[
*/
const parseExp = /\[([0-9]{2}):([0-9]{2})\.([0-9]{2,3})\]/;
export function formatLyric(lyric: string): ILyric[] {
  const res: ILyric[] = [];
  const items = lyric.split('\n');

  for (const item of items) {
    // 使用 for...of 遍历数组
    const ans = parseExp.exec(item); // 正则匹配
    if (ans) {
      // 确保匹配结果不为空
      const time1 = parseInt(ans[1], 10) * 60 * 1000; // 分钟部分转毫秒
      const time2 = parseInt(ans[2], 10) * 1000; // 秒部分转毫秒
      const time3 = ans[3].length > 2 ? parseInt(ans[3], 10) : parseInt(ans[3], 10) * 10; // 毫秒部分处理

      const totalTime = time1 + time2 + time3; // 总时长
      const content = item.replace(parseExp, '').trim(); // 提取歌词内容

      res.push({ time: totalTime, lyric: content }); // 添加到结果数组
    }
  }

  return res;
}
